home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 024 - Big U Macroworks.dsk / ALPHA.CAT.bas < prev    next >
BASIC Source File  |  2019-02-16  |  9KB  |  118 lines

  1. 4  REM <CTRL-M><CTRL-M>*******************<CTRL-M>*                 *<CTRL-M>*    ALPHA.CAT    *<CTRL-M>*                 *<CTRL-M>* COPYRIGHT 1986, *<CTRL-M>* BY RANDY BRANDT *<CTRL-M>*                 *<CTRL-M>*******************<CTRL-M>
  2. 5  ONERR  GOTO 10000
  3. 10 SL = 1:DS = 6:DN = 1:PS$ =  CHR$(9) +"80N"
  4. 15  GOTO 100
  5. 20 D = 2 ^ INT( LOG(CO)/ LOG(2)) -1
  6. 30  FOR I = 1 TO CO -D: IF  RIGHT$(FI$(I),19) < =  RIGHT$(FI$(I +D),19)  THEN  NEXT : GOTO 80
  7. 40 TX$ = FI$(I +D):FI$(I +D) = FI$(I): IF I < = D  THEN FI$(I) = TX$: NEXT : GOTO 80
  8. 50  FOR J = I -D TO 1  STEP  -D: IF  RIGHT$(TX$,19) > =  RIGHT$(FI$(J),19)  THEN 70
  9. 60 FI$(J +D) = FI$(J): NEXT 
  10. 70 FI$(J +D) = TX$: NEXT I
  11. 80 D =  INT(D/2): IF D >0  THEN 30
  12. 90  RETURN 
  13. 100  HOME :D$ =  CHR$(4):Q$ =  CHR$(34):CL =  -868:CS =  -958:C8 = 1403:KR = 49168:SD = 48700:AS =  PEEK(SD):AD =  PEEK(SD +1):A1 =  PEEK(1014):A2 =  PEEK(1015): POKE 48891, PEEK(116)
  14. 104  PRINT D$"PREFIX": INPUT PFX$:OP$ = "/": FOR I = 2 TO  LEN(PF$) -1: IF  MID$ (PF$,I,1) = "/"  THEN OP$ = PF$: GOTO 110
  15. 105  NEXT 
  16. 110 ITEMS = 3: DIM B$(IT): DIM GF$(3),LI$(27): DIM MN$(24),FI$(70): DIM M$(4),A$(3): DIM Q(2),Q$(2):Q(0) = 6:Q$(0) = "M":Q(1) = 25:Q$(1) = "A":Q(2) = 46:Q$(2) = "Esc"
  17. 120  PRINT D$"-MENUS"
  18. 130 I = 5:H = 9:V = 7:C = 25
  19. 140  FOR I = 0 TO 4: READ M$(I): NEXT : FOR I = 0 TO 3: READ A$(I): NEXT : FOR I = 0 TO IT: READ B$(I): NEXT : FOR I = 0 TO 3: READ GF$(I): NEXT :GF$(1) = "Slot " + STR$(DS) +" Drive " + STR$(DN)
  20. 150  PRINT  CHR$(4)"PR#3"
  21. 200  GOSUB 9700: & RPT,223,79: VTAB 22: PRINT : & RPT,223,79: GOSUB 9500
  22. 210  & BOX,M$(0),4,3,11: CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL
  23. 220  VTAB 10: PRINT : HTAB 35: PRINT "(Now "SL")"
  24. 230  & MENU,B$(0,)IT,1,H,V,C
  25. 240 X =  PEEK(0):OX = X: IF X < >IT +1  THEN 350
  26. 250 QO = 2
  27. 260  VTAB 23: PRINT : PRINT "Press  M  for Main.Menu,  A  for Applesoft or  Esc  to continue";: CALL CL: POKE C8,Q(QO): INVERSE : PRINT " "Q$(QO)" ";: NORMAL 
  28. 270  & KEY,33,24:X =  PEEK(0): IF X = 27  OR (X = 13  AND QO = 2)  THEN  GOSUB 9500: GOTO 230
  29. 280  IF X = 77  OR X = 109  OR (X = 13  AND QO = 0)  THEN X = 77: GOTO 330
  30. 290  IF X = 65  OR X = 97  OR (X = 13  AND QO = 1)  THEN X = 65: GOTO 330
  31. 300  IF   NOT (X = 8  OR X = 21)  THEN  & BEEP: GOTO 270
  32. 310  IF X = 8  THEN QO = QO -1: IF QO =  -1  THEN QO = 2
  33. 320  IF X = 21  THEN QO = QO +1: IF QO = 3  THEN QO = 0
  34. 325  GOTO 260
  35. 330  GOSUB 9800
  36. 335  IF X = 77  THEN  PRINT D$"-MAIN.MENU"
  37. 340  HOME : PRINT  CHR$(21): PRINT : PRINT "TYPE "Q$"RUN"Q$" TO RESTART.": END 
  38. 350  IF X <1  OR X >IT  THEN  & BEEP: GOTO 230
  39. 360  & BOX,M$(X),7,5,11:: CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL
  40. 370  IF X = 1  THEN FO = 0: VTAB 1: HTAB 31: PRINT " VIEW AW FILES  ";
  41. 380  IF X = 2  THEN FO = 1: VTAB 1: HTAB 31: PRINT " VIEW ALL FILES ";
  42. 390  IF X = 3  THEN  VTAB 1: HTAB 30: PRINT "CHANGE PRINTER SLOT";
  43. 400  POKE C8,56: PRINT "Escape: Alpha.Cat Menu";: CALL CL
  44. 410  IF X < >3  THEN 6000
  45. 4000  GOSUB 9600
  46. 4005  VTAB 10: PRINT : HTAB 14: PRINT "Current Printer Slot: ";: INVERSE : PRINT " "SL" ": NORMAL 
  47. 4010  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN 200
  48. 4020  IF X = 11  THEN SL = SL +1: IF SL = 8  THEN SL = 1
  49. 4030  IF X = 10  THEN SL = SL -1: IF SL = 0  THEN SL = 7
  50. 4035  IF X = 10  OR X = 11  THEN 4005
  51. 4040  IF X = 13  THEN 200
  52. 4050  & BEEP: GOTO 4010
  53. 6000  POKE C8,56: PRINT "Escape: Alpha.Cat Menu";: CALL CL
  54. 6005  & MENU,A$(0),1,1,12,10,25:X =  PEEK(0): IF X = 27  THEN 200
  55. 6010 SO = 1 -(X -1): IF SO <0  OR SO >1  THEN  & BEEP: GOTO 6000
  56. 6020  VTAB 1: HTAB 31: PRINT "  READ DIRECTORY  ";: POKE C8,56: PRINT " Escape: "M$(OX);: CALL CL
  57. 6030  & BOX,M$(4),10,7,11: CALL CL: PRINT : CALL CL: PRINT : CALL CL
  58. 6040  VTAB 9: PRINT : HTAB 16: PRINT "Read which directory?": HTAB 16: PRINT "Select (1) when 'Current Directory' is correct.": PRINT : POKE C8,39: PRINT PFX$; SPC( 30 - LEN(PF$))
  59. 6045  GOSUB 9500
  60. 6050  & MENU,GF$(0),3,1,15,13,25:X =  PEEK(0): IF X = 27  THEN X = OX: GOTO 360
  61. 6060  ON X GOTO 6210,6200,6070,6190: & BEEP: GOTO 6050
  62. 6070  VTAB 14: PRINT : HTAB 24: INVERSE : PRINT " "DS" ";: NORMAL : PRINT : GOSUB 9600
  63. 6080  & KEY,32,24:X =  PEEK(0): IF X = 27  THEN  GOSUB 9500: GOTO 6040
  64. 6090  IF X = 10  THEN DS = DS -1: IF DS = 0  THEN DS = 7
  65. 6100  IF X = 11  THEN DS = DS +1: IF DS = 8  THEN DS = 1
  66. 6105  IF X >48  AND X <56  THEN DS = X -48:X = 13
  67. 6115  IF X = 13  OR X = 21  THEN GF$(1) = "Slot " + STR$(DS) +" Drive " + STR$(DN): VTAB 14: PRINT : HTAB 20: PRINT GF$(1)" ";: GOTO 6140
  68. 6120  IF X = 10  OR X = 11  THEN 6070
  69. 6130  & BEEP: GOTO 6080
  70. 6140  VTAB 14: PRINT : HTAB 32: INVERSE : PRINT " "DN" ";: NORMAL : PRINT : GOSUB 9600
  71. 6150  & KEY,32,24:X =  PEEK(0): IF X = 27  OR X = 8  THEN  VTAB 14: PRINT : HTAB 20: PRINT GF$(1)" ";: GOTO 6070
  72. 6160  IF X = 10  OR X = 11  THEN DN = 3 -DN: GOTO 6140
  73. 6165  IF X >48  AND X <51  THEN DN = X -48:X = 13
  74. 6170  IF X = 13  THEN  GOSUB 9500:GF$(1) = "Slot " + STR$(DS) +" Drive " + STR$(DN): VTAB 14: PRINT : HTAB 20: PRINT GF$(1)" ";: GOTO 6200
  75. 6180  & BEEP: GOTO 6150
  76. 6190  VTAB 23: PRINT : PRINT "Type new pathname: /";: CALL CL: &  INPUT X$: ON X$ = "" GOTO 6045:P2$ = "/" +X$ +"/": PRINT D$"PREFIX"P2$:PFX$ = P2$: GOTO 6040
  77. 6200  VTAB 22: PRINT D$"PREFIX,S"DS",D"DN: PRINT D$"PREFIX": INPUT PFX$: GOTO 6040
  78. 6210  & BOX,M$(4),10,7,11: VTAB 11: PRINT : HTAB 17: PRINT "Reading directory...":CO = 1: PRINT D$"FRE"
  79. 6220  VTAB 22: PRINT D$"OPEN"PFX$",TDIR": VTAB 22: PRINT D$"READ"PFX$: INPUT X$: INPUT X1$: INPUT X2$
  80. 6230  INPUT FI$(CO):X$ =  MID$ (FI$(CO),18,3): IF FO = 0  AND (X$ = "AWP"  OR X$ = "ADB"  OR X$ = "ASP")  THEN CO = CO +1: GOTO 6230
  81. 6240  IF FO = 1  AND  LEFT$(FI$(CO),12) < >"BLOCKS FREE:"  THEN CO = CO +1: GOTO 6230
  82. 6250  IF  LEFT$(FI$(CO),12) < >"BLOCKS FREE:"  THEN 6230
  83. 6260 FI$(0) =  LEFT$(FI$(CO),39): PRINT D$"CLOSE"
  84. 6270  IF CO >0  THEN  IF  MID$ (FI$(CO),18,3) = ""  OR  MID$ (FI$(CO),18,3) = "   "  THEN CO = CO -1: GOTO 6270
  85. 6280  IF CO <1  AND FO = 0  THEN  & BEEP: VTAB 11: PRINT : HTAB 17: PRINT "No AppleWorks files found in": HTAB 17: PRINT PFX$:X = OX: & KEY,25,24: ON  PEEK(0) = 27 GOTO 360: GOTO 6020
  86. 6290  IF CO <1  THEN  & BEEP: VTAB 11: PRINT : HTAB 17: PRINT "No files found in   ": HTAB 17: PRINT PFX$:X = OX: & KEY,25,24: ON  PEEK(0) = 27 GOTO 360: GOTO 6020
  87. 6400  IF OX = 1  THEN  VTAB 1: HTAB 31: PRINT "  VIEW AW FILES  ";
  88. 6405  IF OX = 2  THEN  VTAB 1: HTAB 31: PRINT "  VIEW ALL FILES ";
  89. 6410  VTAB 1: POKE C8,56: PRINT "Escape: Alpha.Cat Menu";: CALL CL
  90. 6500  & BOX,M$(OX),7,5,11: CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL
  91. 6510  VTAB 13: PRINT : HTAB 17: PRINT "Printer Slot: "SL
  92. 6600  & MENU,A$(2),3,1,12,10,25:X =  PEEK(0): IF X = 27  THEN 200
  93. 6700  IF X = 1  THEN PO = 3
  94. 6800  IF X = 2  THEN PO = SL
  95. 6900  IF X >2  THEN  & BEEP: GOTO 6600
  96. 7000  FOR I = 1 TO CO:FI$(I) =  LEFT$(FI$(I),20): NEXT : IF SO = 0  THEN 7020
  97. 7010  VTAB 13: PRINT : HTAB 17: PRINT "Sorting Files...    ": GOSUB 20
  98. 7020  VTAB 13: PRINT : HTAB 17: PRINT "Formatting Names... "
  99. 7025  FOR I = 1 TO CO:X$ = "": FOR J = 0 TO 2:X1 =  ASC( MID$ (FI$(I),18 +J,1)):X$ = X$ + CHR$(X1 +(32 *(X1 >63))): NEXT :FI$(I) =  LEFT$(FI$(I),1) +X$ +":" + MID$ (FI$(I),2,15): NEXT :FI$(CO +1) = " ":X =  INT((CO +1)/2): IF PO < >3  THEN 7040
  100. 7030  HOME : PRINT : PRINT " "PFX$: PRINT " "FI$(0): & RPT,173,41: PRINT : FOR I = 1 TO X: PRINT FI$(I)" "FI$(I +X): NEXT : VTAB 23: PRINT : PRINT "Press Return";: & KEY,7,24: HOME : GOTO 200
  101. 7040  & BOX,M$(OX),7,5,11: CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL: PRINT : CALL CL: VTAB 10: PRINT : HTAB 13: PRINT "Make sure your printer is on line"
  102. 7050  PRINT D$"PR#"PO: PRINT PS$: PRINT " "PFX$: PRINT " "FI$(0): & RPT,173,41: PRINT : FOR I = 1 TO X: PRINT FI$(I)" "FI$(I +X): NEXT : PRINT  CHR$(12): GOTO 150
  103. 9500  VTAB 23: PRINT : PRINT "Type number or use arrow keys, then press Return           See Manual for Help";: RETURN 
  104. 9600  VTAB 23: PRINT : PRINT "Use up/down arrow keys to change value; press Return when done";: CALL CL: RETURN 
  105. 9700  VTAB 1: PRINT : VTAB 1: HTAB 1: PRINT "MacroWorks";: CALL CL: HTAB 31: PRINT "ALPHA.CAT MENU";: POKE C8,69: PRINT "Alpha.Cat": RETURN 
  106. 9800  PRINT D$"PREFIX/": IF OP$ < >"/"  THEN  PRINT D$"PREFIX"OP$
  107. 9810  POKE 1014,A1: POKE 1015,A2: CALL 48888: POKE SD,AS: POKE SD +1,AD: RETURN 
  108. 10000 ER =  PEEK(222):EL =  PEEK(218) +256 * PEEK(219)
  109. 10005  IF EL = 104  THEN  PRINT : PRINT : PRINT "<CTRL-G>A disk must be in the current drive": END : GOTO 100
  110. 10025  IF EL = 120  THEN  PRINT : PRINT "<CTRL-G>The file MENUS must be on the disk": END 
  111. 10045  IF EL = 335  THEN  VTAB 23: PRINT : PRINT "Insert the MacroWorks disk; press Return ";: CALL CL: GET X$:X = 77: ON X$ < > CHR$(27) GOTO 335: RUN 
  112. 10047  IF EL = 9800  THEN  VTAB 23: PRINT : PRINT "Insert the MacroWorks disk; press Return";: CALL CL: & KEY,21,24: GOTO 9800
  113. 10100  IF EL > = 6190  AND EL <6300  THEN  VTAB 23: & BEEP: PRINT : PRINT "Unable to find directory; press a key";: CALL CL: & KEY,20,24: GOSUB 9500: GOTO 6040
  114. 11000  POKE 216,0: RESUME 
  115. 15015  DATA  "Alpha.Cat Menu", "View AW Files","View All Files","Change Printer","Read Directory" : REM  M$(4)
  116. 15020  DATA "Display Files in Alphabetical Order","Display Files in Original Disk Order","Display Files on Screen","Print Files" : REM  A$(3)
  117. 15025  DATA  "View AppleWorks Files","View All Files","Change Printer Slot","Quit" : REM  B$(3)
  118. 16000  DATA  "Current Directory:","Slot 6 Drive 1","Another Slot and Drive","Another Pathname": REM  GF$(3)